from certificate_manager.models import Cate, Manageship, Department

def cate_init():
    Cate.objects.all().delete()
    Manageship.objects.all().delete()

    cates = [
        ('中国“互联网+”大学生创新创业大赛', '教务处',  '超级'),
        ('“挑战杯”全国大学生课外学术科技作品竞赛',  '团委',    '超级'),
        ('“挑战杯”中国大学生创业计划竞赛',  '团委',    '一级'),
        ('全国大学生创新创业训练计划年会展示',  '教务处',  '一级'),
        ('中美青年创客大赛',    '教务处',  '一级'),
        ('全国兵棋推演大赛',    '机电工程学院',    '一级'),
        ('全国大学生机械创新设计大赛',  '机械工程学院',    '一级'),
        ('全国大学生先进成图技术与产品信息建模创新大赛',    '机械工程学院',    '一级'),
        ('两岸新锐设计竞赛“华灿奖”',    '机械工程学院',    '一级'),
        ('全国三维数字化创新设计大赛',  '机械工程学院',    '一级'),
        ('中国机器人及人工智能大赛',    '机械工程学院',    '一级'),
        ('中国大学生机械工程创新创意大赛——过程装备实践与创新赛、起重机创意赛、智能制造大赛',    '机械工程学院',    '一级'),
        ('中国大学生机械工程创新创意大赛——铸造工艺设计赛、材料热处理创新创业赛',    '材料科学与工程学院',  '一级'),
        ('全国大学生金相技能大赛',  '材料科学与工程学院',  '一级'),
        ('全国大学生化工设计竞赛',  '化学工程与技术学院',  '一级'),
        ('全国大学生生命科学竞赛（CULST）——生命科学竞赛、生命创新创业大赛', '化学工程与技术学院',  '一级'),
        ('全国大学生电子设计竞赛',  '信息与通信工程学院',  '一级'),
        ('全国大学生光电设计竞赛',  '信息与通信工程学院',  '一级'),
        ('“大唐杯”全国大学生移动通信技术5G技术大赛',    '信息与通信工程学院',  '一级'),
        ('全国大学生嵌入式芯片与系统设计竞赛',  '信息与通信工程学院',  '一级'),
        ('全国大学生智能汽车竞赛',  '仪器与电子学院',  '一级'),
        ('全国大学生集成电路创新创业大赛',  '仪器与电子学院',  '一级'),
        ('全国大学生机器人大赛Robocon、RoboMaster', ('仪器与电子学院', '工程训练中心'), '一级'),
        ('中国机器人大赛暨RoboCup机器人世界杯中国赛',   '仪器与电子学院',  '一级'),
        ('Robocon机器人开发者大赛', '仪器与电子学院',  '一级'),
        ('中国高校智能机器人创意大赛',  '仪器与电子学院',  '一级'),
        ('“蓝桥杯”全国软件和信息技术专业人才大赛',  '大数据学院',  '一级'),
        ('全国大学生信息安全竞赛',  '大数据学院',  '一级'),
        ('全国高校数字艺术设计大赛',    '大数据学院',  '一级'),
        ('中国大学生计算机设计大赛',    ('大数据学院', '艺术学院'), '一级'),
        ('华为ICT大赛', '大数据学院',  '一级'),
        ('全国大学生数学建模竞赛',  '理学院',  '一级'),
        ('全国大学生结构设计竞赛',  '理学院',  '一级'),
        ('周培源全国大学生力学竞赛',    '理学院',  '一级'),
        ('全国大学生物理实验竞赛',  '理学院',  '一级'),
        ('全国高校BIM毕业设计创新大赛', '理学院',  '一级'),
        ('全国大学生电子商务“创新、创意及创业”挑战赛',  '经济与管理学院',  '一级'),
        ('全国大学生市场调查与分析大赛',    '经济与管理学院',  '一级'),
        ('中国大学生服务外包创新创业大赛',  ('大数据学院', '经济与管理学院'),  '一级'),
        ('“学创杯”全国大学生创业综合模拟大赛',  '经济与管理学院',  '一级'),
        ('全国高校商业精英挑战赛流通业经营模拟竞赛——品牌策划竞赛、会展专业创新创业实践竞赛、国际贸易竞赛、创新创业竞赛',    '经济与管理学院',  '一级'),
        ('“外研社杯”全国大学生英语系列赛：英语演讲、英语辩论、英语写作、英语阅读',  '人文社会科学学院',    '一级'),
        ('全国大学生广告艺术大赛',  '艺术学院',    '一级'),
        ('米兰设计周——中国高校设计学科师生优秀作品展',  '艺术学院',    '一级'),
        ('中国好创意暨全国数字艺术设计大赛',    '艺术学院',    '一级'),
        ('ACM-ICPC国际大学生程序设计竞赛',  '软件学院',    '一级'),
        ('中国“软件杯”大学生软件设计大赛',  '软件学院',    '一级'),
        ('中国高校计算机大赛-大数据挑战赛、团体程序设计天梯赛、移动应用创新赛、网络技术挑战赛', '软件学院',    '一级'),
        ('中国高校计算机大赛-人工智能创意赛',   '信息与通信工程学院',  '一级'),
        ('全国大学生交通科技大赛',  '电气与控制工程学院',  '一级'),
        ('“西门子杯”中国智能制造挑战赛',    '电气与控制工程学院',  '一级'),
        ('全国大学生节能减排社会实践与科技竞赛',    '能源动力工程学院',    '一级'),
        ('全国大学生工程训练综合能力竞赛',  '工程训练中心',    '一级'),
        ('华北五省（市、自治区）大学生机器人大赛',  '机械工程学院',    '二级'),
        ('全国大学生工业设计大赛',  '机械工程学院',    '二级'),
        ('全国大学生化工实验大赛',  '化学工程与技术学院',  '二级'),
        ('中国大学生Chem-E-Car竞赛',    '化学工程与技术学院',  '二级'),
        ('山西省大学生电子设计竞赛',    '信息与通信工程学院',  '二级'),
        ('iCAN国际创新创业大赛',    '仪器与电子学院',  '二级'),
        ('华北五省（市、自治区）及港澳台大学生计算机应用大赛',  '大数据学院',  '二级'),
        ('山西省大学生物理学术竞赛',    '理学院',  '二级'),
        ('全国大学生数学竞赛',  '理学院',  '二级'),
        ('全国大学生“新道杯”沙盘模拟经营大赛',  '经济与管理学院',  '二级'),
        ('山西省大学生模拟法庭大赛',    '人文社会科学学院',    '二级'),
        ('长江钢琴·全国高校钢琴大赛',   '艺术学院',    '二级'),
        ('中国大学生方程式汽车大赛',    '能源动力工程学院',    '二级'),
        ('CADC中国国际飞行器设计挑战赛',    '机电工程学院',    '三级'),
        ('全国武器创新设计大赛',    '机电工程学院',    '三级'),
        ('格斗机器人系列比赛',  '机械工程学院',    '三级'),
        ('全国机械工业设计创新大赛',    '机械工程学院',    '三级'),
        ('中国大学生高分子材料创新创业大赛',    '材料科学与工程学院',  '三级'),
        ('“上纬杯”全国大学生复合材料设计与制作大赛',    '材料科学与工程学院',  '三级'),
        ('全国大学生失效分析大赛',  '材料科学与工程学院',  '三级'),
        ('“永冠杯”中国大学生铸造工艺设计大赛',  '材料科学与工程学院',  '三级'),
        ('全国大学生材料设计邀请赛',    '材料科学与工程学院',  '三级'),
        ('全国大学生焊接创新大赛',  '材料科学与工程学院',  '三级'),
        ('全国大学生制药工程设计大赛',  '化学工程与技术学院',  '三级'),
        ('全国大学生智能互联创新大赛',  '信息与通信工程学院',  '三级'),
        ('全国大学生生物医学工程创新设计竞赛',  '信息与通信工程学院',  '三级'),
        ('全国无线电测向锦标赛',    '信息与通信工程学院',  '三级'),
        ('业余无线电应急通信演练赛',    '信息与通信工程学院',  '三级'),
        ('“唐辉杯”中国智能仪器仪表设计大赛',    '仪器与电子学院',  '三级'),
        ('“赛佰特杯”全国大学生智能互联创新应用设计大赛',    '仪器与电子学院',  '三级'),
        ('中国机器人大赛（武术擂台赛）',    '仪器与电子学院',  '三级'),
        ('全国大学生物联网设计竞赛（TI杯）',    '仪器与电子学院',  '三级'),
        ('全国高校绿色计算大赛',    '大数据学院',  '三级'),
        ('中国高校游戏艺术大赛',    '大数据学院',  '三级'),
        ('全国高校大数据应用创新大赛',  '大数据学院',  '三级'),
        ('全国大学生化学实验竞赛',  '理学院',  '三级'),
        ('“网中网”杯全国大学生财务决策大赛（本科组）',  '经济与管理学院',  '三级'),
        ('全国大学生外贸从业能力大赛',  '经济与管理学院',  '三级'),
        ('全国大学生商务谈判大赛',  '经济与管理学院',  '三级'),
        ('“金蝶云管理创新赛”互联网+管理应用大赛',   '经济与管理学院',  '三级'),
        ('全国高校企业价值创造实战竞赛',    '经济与管理学院',  '三级'),
        ('“社科奖”全国高校市场营销大赛',    '经济与管理学院',  '三级'),
        ('OCALE全国跨境电商创新创业能力大赛',   '经济与管理学院',  '三级'),
        ('全国高等院校企业竞争模拟大赛',    '经济与管理学院',  '三级'),
        ('全国口译大赛（英语）',    '人文社会科学学院',    '三级'),
        ('中国计算机系统与程序设计竞赛(CCSP)',  '软件学院',    '三级'),
        ('全国高校安全科学与工程大学生实践与创新作品大赛',  '环境与安全工程学院',  '三级'),
        ('山西省“太尔时代杯”三维建模与快速成型技术技能大赛',    '工程训练中心',    '三级'),
    ]

    zbdx = Cate.objects.create(name='中北大学')
    zbdx.save()

    nested_mapper = {}
    for name in ('超级', '一级', '二级', '三级'):
        cate = Cate.objects.create(name=name, collecable=False, nested_cate=zbdx)
        cate.save()

        nested_mapper[name] = cate

    for name, dep, level in cates:
        cate = Cate.objects.create(name=name, nested_cate=nested_mapper[level], collecable=True)
        cate.save()

        if isinstance(dep, tuple):
            # 有几个就要创建几个
            for d in dep:
                Manageship.objects.create(cate=cate, department=Department.objects.get(name=d)).save()
        else:
            # 只有一个dep
            Manageship.objects.create(cate=cate, department=Department.objects.get(name=dep)).save()
